home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs08.d81
/
typrac.prg
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
3KB
|
130 lines
10 POKE53281,1 :POKE53280,0
20 PRINT"[147] THIS PROGRAM IS DESIGNED TO MEASURE "
30 PRINT" YOUR TYPING SPEED AND TO HELP YOU "
40 PRINT"IMPROVE IT. IF YOU WOULD LIKE TO HAVE "
50 PRINT" YOUR RATING MEASURED, TYPE 'R'."
60 PRINT"OTHERWISE GIVE YOUR BEST RATING SO FAR."
70 GET A$:IF A$=""THEN 70
80 IF A$="R" THEN PRINT"R";:GOTO 530
90 IF ASC(A$)<49ORASC(A$)>57THEN70
100 RA=10*VAL(A$)
110 PRINTA$;
120 GETA$:IFA$=""THEN120
130 IF ASC(A$)<48 OR ASC(A$)>57 THEN 120
140 PRINTA$;:RA=RA+VAL(A$)
150 GOSUB810
160 GOSUB860
170 GOSUB240:
180 N=INT(2000/RA):GOSUB340
190 Y=(Z/LEN(X$))/60
200 RB=10+90/(1+Y)
210 RA=INT(0.8*RA+0.2*RB )
220 D=D+1
230 GOTO150
240 PRINT""
250 PRINT"COPY THE FOLLOWING SENTENCE AS FAST AS"
260 PRINT"YOU CAN. START WITH A SPACE":PRINT
270 R=LEN(X$):J=1
280 IFR<23THEN310
290 PRINTMID$(X$,J,22);
300 J=J+22:R=R-22:GOTO280
310 PRINTMID$(X$,J,R);" "
320 RETURN
330 PRINT" "
340 PRINT""
350 POKE1303,160
360 R=LEN(X$)
370 GETA$:IFA$=""THEN370
380 IFA$<>" "THEN370
390 POKE1303,32
400 Z=TI
410 PRINTA$;
420 FORJ=2TOR:W=1303+J
430 POKEW,PEEK(W)+128:T=0
440 GETA$:IFA$<>""THEN470
450 T=T+1:IFT<>NTHEN440
460 Q=245:GOSUB620:T=0:GOTO440
470 IFA$=MID$(X$,J,1)THEN490
480 Q=210:FORK=1TO5:GOSUB620:NEXT:GOTO440
490 PRINTA$;:POKEW,PEEK(W)-128
500 NEXTJ
510 Z=TI-Z:RETURN
520 RA=10:D=-5:GOTO150
530 PRINT"[147] THE MACHINE WILL":PRINT"GIVE YOU SOME":PRINT"SENTENCES TO COPY AS"
540 PRINT"FAST AS YOU CAN." :PRINT
550 PRINT"THE BLACK MARKER"
560 PRINT"SHOWS THE NEXT LETTER"
570 PRINT"(OR SPACE) EXPECTED."
580 PRINT"START WITH A SPACE!":PRINT:PRINT:PRINT
590 PRINT"NOW STRIKE ANY KEY":PRINT"TO START THE TEST"
600 GETA$:IFA$=""THEN600
610 GOTO520
620 IF D<0THEN RETURN
630 REM POKE54296,15
640 REM ***** BELL SOUND *****
650 S=54272
660 POKE S+1,130:POKE S+5,9
670 POKE S+15,30:POKE S+24,15
680 POKE S+4,21
690 FOR T=1 TO 200 :NEXT
700 POKE S+4,20:RETURN
710 REM SELECTS A WORD BETWEEN A AND B
720 RESTORE
730 C=A:Q=245
740 IF C=0 THEN 760
750 READ Y$:C=C-1:GOTO740
760 C=INT((B-A+1)*RND(1))
770 IFC=0THEN790
780 READY$:C=C-1:Q=230:GOTO770
790 X$=X$+" "+Y$
800 RETURN
810 IFD<0THENPRINT"[147]TEST SENTENCE";D+6:RETURN
820 PRINT"[147] [176][192][192][192][192][192][192][174]"
830 PRINT "RATING: [221] ";RA;"[144][221]"
840 PRINT " [173][192][192][192][192][192][192][189]"
850 RETURN
860 X$="":GOSUB940
870 IF RND(1)>0.5THEN 900
880 GOSUB1000:GOSUB1020
890 GOTO910
900 GOSUB1010
910 IFRND(1)>0.25THEN930
920 GOSUB1100
930 RETURN
940 IF RND(1)>0.3THEN960
950 GOSUB1120:RETURN
960 X$=X$+" THE"
970 IF RND(1)>0.3THEN990
980 GOSUB1130
990 GOSUB1140:RETURN
1000 A=43:B=50:GOSUB710:RETURN
1010 A=26:B=35:GOSUB710:RETURN
1020 IF RND(1)>0.6THEN1060
1030 X$=X$+" "+"THE"
1040 IFREN(1)<0.35THENGOSUB1150
1050 GOSUB1170:RETURN
1060 IF RND(1)>0.5THENX$=X$+" "+"SOME":GOTO1080
1070 GOSUB1160
1080 IFRND(1)<0.35THENGOSUB1150
1090 GOSUB1180:RETURN
1100 IF RND(1)>0.7THENX$=X$+" "+"VERY"
1110 GOSUB 1190:RETURN
1120 A=1:B=10:GOSUB710:RETURN
1130 A=11:B=17:GOSUB710:RETURN
1140 A=18:B=25:GOSUB710:RETURN
1150 A=75:B=79:GOSUB710:RETURN
1160 A=58:B=68:GOSUB710:RETURN
1170 A=51:B=57:GOSUB710:RETURN
1180 A=69:B=74:GOSUB710:RETURN
1190 A=36:B=42:GOSUB710:RETURN
1200 DATA ANDREW,JOHN,JILL,SUSAN,XAVIER,VANESSA,BILL,PENNY,ZENA,JOE
1210 DATASILLY,FAT,GREEDY,TALL,UNTIDY,UNWASHED,STUPID
1220 DATABOY,GIRL,MAID,SCHOOLBOY,TEACHER,PROFESSOR,QUEEN,DANCER
1230 DATAWEPT,LAUGHED,"RAN AWAY",FELL,ESCAPED,FAINTED,SNORED,TALKED,STOPPED,USED
1240 DATAQUICKLY,SLOWLY,FAST,NOISILY,SOFTLY,SLYLY,WITHOUT ANY FUSS
1250 DATAGOBBLED,PINCHED,BOUGHT,SOLD,STOLE,FETCHED,BROUGHT,BOILED
1260 DATADUCK,WINE,WHISKY,BEANS,RABBIT,LOAF,SYNTHETIC CREAM
1270 DATATWO,THREE,4,5,6,7,8,10,13,18,20
1280 DATACAKES,POTATOES,APPLES,PIES,SCONES,ROLLS
1290 DATAFOUL,MOULDY,ROTTEN,STALE,GOOD